package year2019.month12;

import java.util.Arrays;
import java.util.List;

/**
 * @desc 文件类型
 * create on 2018/11/19 by watson
 */
public enum FileType {

    DEFAULT("其他"), CHAT("认证文件"), ID_CARD("出入金");

    private String type;

    FileType(String type){
        this.type = type;
    }

    /**
     * 根据序号 ordinal 获取 type 值
     *      允许null（将返回默认值）
     *      不存在值将返回null
     *
     * @param ordinal
     * @return
     */
    public static String getFileType(Integer ordinal) {
        if (ordinal==null) return DEFAULT.type;
        for (FileType fileType : FileType.values()) {
            if (fileType.ordinal() == ordinal) {
                return fileType.type;
            }
        }
        return null;
    }

    public static void main(String[] args){
        //直接引用
        FileType fileType = FileType.DEFAULT;

        System.out.println(fileType);
        System.out.println(fileType.name());
        System.out.println(fileType.ordinal());
        System.out.println(FileType.valueOf("DEFAULT"));

        System.out.println("==============");

        List<FileType> fileTypes = Arrays.asList(FileType.values());
        fileTypes.forEach(
                (ft) -> {
                    switch (ft){
                        case CHAT:      System.out.println(ft.name());      break;
                        case ID_CARD:   System.out.println(ft.ordinal());   break;
                        case DEFAULT:   Deal.doit(ft);                      break;
                    }
                }
        );

        System.out.println("==============");

        fileTypes.forEach(
                (ft) -> {
                    System.out.println(FileType.getFileType(ft.ordinal()));
                }
        );
    }

}

class Deal{

    public static void doit(FileType fileType){
        System.out.println(fileType.name()+"  "+fileType.ordinal());
    }

}
